package per.dg.retrofittestkotlin.use

import com.google.gson.JsonObject
import okhttp3.ResponseBody
import per.dg.retrofittestkotlin.project.model.ArticleList
import per.dg.retrofittestkotlin.project.model.BaseResult
import retrofit2.Call
import retrofit2.http.GET
import retrofit2.http.POST
import retrofit2.http.Path
import retrofit2.http.Query

interface WanAndroidApi {

//    登录注册

//    注册
    @POST("/user/register")
    fun regist(@Query("username") username:String, @Query("password") password:String, @Query("repassword") repassword:String) : Call<ResponseBody>

//    登录
    @POST("/user/login")
    fun login(@Query("username") username:String, @Query("password") password:String) : Call<JsonObject>

//    退出
    @GET("/user/logout/json")
    fun logout() : Call<JsonObject>

//    首页相关

//    首页文章列表
    @GET("/article/list/{page}/json")
    fun homeArticleList(@Path("page") page:Int) : Call<BaseResult<ArticleList>>
//    fun homeArticleList(@Path("page") page:Int) : Call<JsonObject>

//    置顶文章
    @GET("/article/top/json")
    fun homeTopArticleList() : Call<JsonObject>

//    首页banner
    @GET("/banner/json")
    fun homeBanner() : Call<JsonObject>

//    热词
    @GET("/hotkey/json")
    fun hotKey() : Call<JsonObject>

//    常用网站
    @GET("/friend/json")
    fun friend() : Call<JsonObject>

//    体系

//    体系数据
    @GET("/tree/json")
    fun tree() : Call<JsonObject>

//    知识体系下的文章
//    cid 分类的id，上述二级目录的id
    @GET("/article/list/{page}/json?cid={cid}")
    fun treeArticleList(@Path("page") page: Int, @Path("cid") cid: Int) : Call<JsonObject>

//    按照作者昵称搜索文章
    @GET("/article/list/{page}/json?author={author}")
    fun searchForArticleListByAuthor(@Path("page") page: Int, @Path("author") author: String) : Call<JsonObject>

//      导航

//      导航数据
    @GET("/navi/json")
    fun navi() : Call<JsonObject>

//    项目

//    项目分类
    @GET("/project/tree/json")
    fun projectType() : Call<JsonObject>

//    项目列表数据
    @GET("/project/list/{page}/json?cid={cid}")
    fun projectList(@Path("page") page: Int, @Path("cid") cid: String) : Call<JsonObject>

//    收藏

//    收藏文章列表
    @GET("/lg/collect/list/{page}/json")
    fun collectionList(@Path("page") page: Int) : Call<JsonObject>

//    收藏的文章内容
    @POST("/lg/collect/{id}/json")
    fun collection(@Path("id") id: Int) : Call<JsonObject>
}